#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>
#include <dir.h>

#include "win.h"

int main()
{
	short int choix,test;

	ludos_win menu;

	if(set_win_attrib(&menu,1,1,WIN_CLASSIC,RED,BLUE) == OK)
	{
		if(set_title(&menu,"[ Ludos: Installation]",GREEN,BLACK) == OK)
		{


		while(1)
		{
			  menu:
			 system("cls");
			 choix=make_menu(&menu,24,10,WHITE,RED,4,
								 "1) Partionnement du disque dur",
								 "2) Formattage du disque dur   ",
								 "3) Installation de LudOS      ",
								 "4) Quitter                    ");



					  switch(choix)
					  {
						 case 1:
						 {
							 system("cls");
							 puts(" Voulez-vous partitionner votre disque dur ?(O pour oui,N pour non)");

							 fdisk:

							 choix=getch();

							 if(choix == 'o' || choix == 'O')
							 {
							  test=system("fdisk");

							  if(test != 0)
							  {
								  puts("\n\t Impossible de trouver fdisk.");
							  }
							 }
							 else if(choix == 'n' || choix == 'N')
							 {
								goto menu;
							 }
							 else{
							 goto fdisk;
							 }



							break;
						 }



						 case 2:
						 {


							system("cls");
							puts(" Etes-vous vraiment sur de vouloir formatter le disque dur ?\n(O pour oui,N pour non)");

							format:

							choix=getch();

							if(choix== 'o' || choix == 'O')
							{
							  system("cls");
							  test=system("format c:");

							  if(test != 0)
							  {
								 textcolor(RED);
								 printf("\n\t Impossible de trouver format");
								 getch();
								 goto menu;
							  }
							}
							else if(choix == 'n' || choix == 'N')
							{
								goto menu;
							}
							else{

							goto format;
							}



						  break;
						 }

						 case 3:
						 {

							 test=install();
							  if(test != OK)
							  {
								 puts("\n\n\t L'installation ne s'est pas terminee correctement...");
								 getch();
								 goto menu;
							  }

						  break;
						 }

						 case 4:
						 {
							system("cls");
							 puts("\n\n Voulez-vous abandonner l'installation de LudOS ?\n(O pour oui,N pour non)");
							quitter:


							  choix=getch();

							if(choix== 'o' || choix == 'O')
							{
							  return 0;
							}
							else if(choix == 'n' || choix == 'N')
							{
								goto menu;
							}
							else{

							goto quitter;
							}

						 }
					 }
		  }/*fin boucle du menu*/
		 }


	 }
	return 0;
}



int install();

int install()
{
	  int test,choix;
	system("cls");
	puts("\n\n\n\t\t   Bienvenue dans l'installation de ludOS.\n\n"
			 "   Ceci va installer les fichiers necessaires de MS DOS puis ceux de LudOS \n"
			 "      Voulez-vous installer LudOS ? ( Le disque C: doit etre formate)");

			 choix=getch();

			 if(choix== 'o' || choix == 'O')
			 {
				 goto install;
			 }
			 else if (choix == 'n' || choix == 'N')
			 {
			  return OK;
			 }


	  install:

	  puts("\t Les fichiers systemes de MS DOS vont etre copies.");
	  test=system("sys c:");

	  if(test != 0)
	  {
		 puts("\n\n\n\t Impossible d'installer les fichiers systemes.");
		 getch();
		 return ERREUR;
	  }


	  puts("    Creation des dossiers de LudOS...");

	  test=mkdir("C:\\sys");
	  if(test != 0)
	  {
		  goto erreur;
	  }


	  test=mkdir("C:\\sys\\comp");
		if(test != 0)
	  {
		 goto erreur;
	  }

	 test=mkdir("C:\\sys\\tmp");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\sys\\bin");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\sys\\cmd");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\sys\\log");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\sys\\src");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\sys\\cfg");
	  if(test != 0)
	  {
		 goto erreur;
	  }

	  test=mkdir("C:\\sys\\cfg\\1");
	  if(test != 0)
	  {
		 goto erreur;
	  }

	  test=mkdir("C:\\sys\\cfg\\2");
	  if(test != 0)
	  {
		 goto erreur;
	  }

	  test=mkdir("C:\\sys\\cfg\\3");
		 if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\usr");
	  if(test != 0)
	  {
		 goto erreur;
	  }


	  test=mkdir("C:\\prog");
		if(test != 0)
	  {
		 goto erreur;
	  }


	  puts("\nLes dossiers systemes de LudOS ont bien ete crees");








		  erreur:
		  puts("\nUn dossier de LudOS n'a pu etre cree.");
		  return ERREUR;
}
